Deadlocks within a communications environment are caused when a resource being held by one component of the communications environment is requested by another component of the environment, but the component holding the resource is waiting on another resource being held by the component making the request. This is referred to as a circular wait condition and such a condition leads to a deadlock over time. These deadlocks can occur in many types of communications environments, including, but not limited to, networked clusters.
In a networked cluster, nodes of the cluster are coupled to the network using interfaces, such as adapters, which regulate the flow of packets in and out of the cluster. If the connection from the adapter of a node to the network is broken, the node loses its connectivity to the network. To minimize this risk, a dual adapter card, offered by International Business Machines Corporation, Armonk, N.Y., is employed. With a dual adapter, if one adapter loses its connection to the network, packets can be routed through the other adapter of the dual adapter card.
While failover to the other adapter is possible, introducing the failover route on a link failure or restoring the original route when the link recovers can only be performed sequentially. Thus, a condition arises in which there can be a circular wait for some amount of time leading to a deadlocked situation.
Based on the foregoing, a need exists for a capability that facilitates performing failovers in a manner that avoids deadlocks.